package agents.persons.leader;

import org.apache.log4j.Logger;

import com.avanti.routes.ListaCuadrantes;

import agents.messages.MessageConstants;
import agents.persons.dependent.Dependent;
import es.ucm.fdi.agents.yellowPages.YellowPages;
import jade.core.AID;
import jade.core.behaviours.OneShotBehaviour;
import jade.lang.acl.ACLMessage;
import log.Action;
import log.ContadorEventos;

public class CallDependents extends OneShotBehaviour{

	/**
	 * 
	 */
	private static final long serialVersionUID = -1578930061912830116L;
	static Logger logger = Logger.getLogger(LeaderAgent.class);
	private int cuadActual;
	public CallDependents(int cuadranteActual) {
		super();
		this.cuadActual = cuadranteActual;
		logger.info(ContadorEventos.addEvent(Integer.toString(cuadranteActual), Action.BUSCAR_DEPENDIENTES, ""));
	}

	@Override
	public void action() {
		YellowPages paginasAmarillas = new YellowPages();
		AID[] listaDependientes = paginasAmarillas.buscarServicio(MessageConstants.SERV_BUSCO_LIDERAZGO, myAgent);
		// Message carrying a request for offer
		ACLMessage cfp = new ACLMessage(ACLMessage.CFP);
		for (int i = 0; i < listaDependientes.length; ++i) {
			cfp.addReceiver(listaDependientes[i]);
		}
		cfp.setPerformative(ACLMessage.PROPOSE);
		String cont = MessageConstants.MSJ_OFREZCO_LIDERAZGO+cuadActual+"-"+ ((LeaderAgent) myAgent).getLiderazgo();
		cfp.setContent(cont);
		cfp.setConversationId(MessageConstants.MSJ_OFREZCO_LIDERAZGO);
		
		////System.out.println("El agente "+myAgent.getLocalName()+" ha enviado un mensaje de ofrecer liderazgo");
		myAgent.send(cfp);
		String cuad = Integer.toString(((LeaderAgent)myAgent).getCuadranteActual());
		logger.info(ContadorEventos.addEvent(cuad, Action.ENVIAR_MSJ, cont));
		
	}

}
